
//声明构造函数
function Promise(executor){

    //为实例对象添加属性(this)
    //添加属性
    this.PromiseState="pending";
    this.PromiseResult=null;

    //预先保存实例对象的this值
    const self=this; //常见形式命名:that,self,_this

    //resolve函数
    function resolve(data){

        //这里的this指向的是window
        console.log(this);//所以这里直接用this赋值,改的并不是实例对象,而是全局的window对象

        //1.修改对象的状态(promiseState)
        self.PromiseState="fulfilled"; //resolved
        //2.修改对象结果值 (promiseResult)
        self.PromiseResult=data;
    }

    //reject函数
    function reject(data){

        //1.修改对象的状态(promiseState)
        self.PromiseState="rejected";        
         //2.修改对象结果值 (promiseResult)
        self.PromiseResult=data;
    }

    try{
         //同步调用【执行器函数】
        executor(resolve,reject);
    }catch(e){
        //修改Promise对象的状态为【失败】
        reject(e);
    }
   
}

//添加then方法
Promise.prototype.then=function(onResolved,onRejected){

}